package com.whfc.emp.service;

import com.whfc.common.exception.BizException;
import com.whfc.emp.dto.*;
import com.whfc.emp.dto.train.AppBoardEmpGroupCountDTO;

import java.util.Date;
import java.util.List;

/**
 * @ClasssName AppEmpBoardService
 * @Description 大屏服务
 * @Author hw
 * @Date 2021/1/7 18:45
 * @Version 1.0
 */
public interface AppEmpBoardService {

    /**
     * 大屏-人员
     *
     * @param deptId
     * @return
     */
    AppBoardEmpOverviewDTO getEmpData(Integer deptId) throws BizException;

    /**
     * 大屏-人数统计
     *
     * @param deptIds
     * @return
     * @throws BizException
     */
    AppEmpNumDTO getEmpNum(List<Integer> deptIds) throws BizException;

    /**
     * 获取人员数据
     *
     * @param deptId
     * @return
     */
    List<GisEmpDTO> getGisEmpData(Integer deptId) throws BizException;

    /**
     * 获取每天的出勤数据统计
     *
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     */
    List<EmpDataDTO> getAttendData(Integer deptId, Date startDate, Date endDate) throws BizException;

    /**
     * 统计班组数量
     *
     * @param deptId 组织机构ID
     * @return 班组数量
     * @throws BizException 业务异常
     */
    List<AppBoardEmpGroupCountDTO> countGroupData(Integer deptId) throws BizException;

    /**
     * 人员统计
     *
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     * @throws BizException
     */
    AppBoardEmpAnalysisDTO empAnalysis(Integer deptId, Date startDate, Date endDate) throws BizException;

    /**
     * 人行记录
     *
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     * @throws BizException
     */
    AppEmpBoardRecordAnalysisDTO empRecordAnalysis(Integer deptId, Date startDate, Date endDate) throws BizException;

    /**
     * 人行记录
     *
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     * @throws BizException
     */
    AppEmpBoardRecordAnalysisDTO empRecordAnalysis2(Integer deptId, Date startDate, Date endDate) throws BizException;
}
